Media files commonly include within them an index, which provides information as to the location of individual elements within the file. In the case of video files, the index provides locations of the video frames within the file, and in the case of audio files the index provides locations of individual audio samples within the file. This information is required, for example, when a media processing or editing application needs to read a specific portion, or clip from a media file. By referring to the index, the application is able to locate the clip, and retrieve it for playback or for other purposes. For files in which each of the elements has a fixed size, it may be possible to locate a specific element by knowing its sequential position within the media file. However, modern media files often include elements of variable size, especially in video files, where the size of each frame depends on the degree to which it is compressed, and/or on its dependency on other frames when interframe compression techniques are involved. In such files, in addition to information as to the location of each frame, the index includes information about the frame's dependency on other frames.
In the various video file formats that have an index, the index is either placed at the end of the file, or in sections distributed over the file, or in reserved space at the beginning of the file and periodically updated during file capture or transfer. In each of these formats, the index is either not available until the entire video file is present, or it becomes partially available before the file is complete, but at the cost of increased latency, processing cost, the need to use otherwise undesirable formats, exception workflows, and a risk of error.
With the increasing premium on rapid turnaround workflows, it is essential for media editors to be able to work with video files before the file is completely captured or before it is completely transferred into storage accessible to their media processing application. This is especially important for files that take an extended period to capture, e.g., a live sporting event, or files that are large and take time to transfer over the bandwidth that is available. There is therefore a need for systems and methods that can effectively support rapid, “edit while transfer” (EWT) workflows, enabling such files to be worked on before they are fully written or transferred to an editing or archiving system.